An exchange provides one or more markets facilitating and/or enabling the purchase and sale of various types of products including financial instruments such as stocks, bonds, futures contracts, options, cash, and other similar instruments. Agricultural products and commodities are also examples of products traded on such exchanges. A futures contract is a product that is a contract for the future delivery of another financial instrument such as a quantity of grains, metals, oils, bonds, or cash. Generally, each exchange establishes, for each market provided thereby, a specification that defines at least the product(s) traded in the market, minimum quantities that must be traded, and minimum changes in price (e.g., tick size). For some types of products (e.g., futures or options), the specification further defines a quantity of the underlying product represented by one unit (or lot) of the product, and delivery and expiration dates.
Products on an exchange are traded in an environment where the exchange provides a location for buyers and sellers to meet and negotiate a price for a quantity of a product. This environment may be an open outcry or on an electronic trading platform (e.g., an electronic exchange) where traders use software to send an order to the trading platform, or a combination of both. The order identifies the product, the quantity of the product the trader wishes to trade, a price at which the trader wishes to trade the product, and a direction of the order (i.e., whether the order is a bid to buy or an offer to sell). The trading platform may, in turn, allocate resting orders against: aggressor orders; stop orders; market orders; limit orders and/or any other type of known or foreseeable orders. Other products are traded in an over-the-counter market (e.g., where products are not listed on an exchange).
In an electronic trading platform, a trading host on the trading platform monitors incoming orders and attempts to identify (i.e., match) one or more previously received orders stored in an order book database, wherein each identified order is contra to the incoming order and has a favorable price relative to the incoming order. In particular, if the incoming order is a bid then the identified order is an offer at a price that is identical to or less than the bid price. Similarly, if the incoming order is an offer at a particular price, the identified order is a bid at a price that is identical to or greater than the offer price. Unmatched orders are placed in an open order book to await receipt of a contra order, these waiting order are said to be “resting orders”.
In one embodiment, the trading host calculates an open price or “indicative opening price” for a given product based on the overlap of orders (both bids and offers) present within the trading system prior to the market open. The mean price or indicative price will be updated periodically, i.e., every minute, every thirty seconds, every two minutes, etc. If the volume of the orders present within the trading system prior to the market open is such that the open price could be one of two prices, the price closest to the previous settlement price is selected to be the open price. If the trading host determines that overlap exists between bids and offers in a contract, the trading host totals the respective bids and the respective offers within the determined overlap range. The totaled bids are then analyzed by the trading host to determine where and at what price the highest total quantity on the bid “flips” or changes to a higher total quantity of the offer. The identified price is selected to be the indicative opening price. As previously discussed, this indicative opening price will be updated periodically, i.e., every minute, every thirty seconds, every two minutes, etc., until the opening of the market upon which the indicative opening price become the open price.
Upon identification (matching) of a contra order, a minimum of the quantities associated with the identified order and the incoming order is matched and at least the minimum quantities of each of the identified and incoming orders become two halves of a matched trade that is sent to a clearinghouse. The trading host considers each identified order in this manner until either all of the identified orders have been considered or all of the quantity associated with the incoming order has been matched. If any quantity of the incoming order remains, an entry is created in the order book database and information regarding the incoming order is recorded therein.
Traders access the markets on a trading platform using trading software that receives and displays at least a portion of the order book for a market, enables a trader to provide parameters for an order for the product traded in the market, and transmits the order to the trading platform. The trading software typically utilizes a graphical user interface to display at least a price and quantity of some of the entries in the order book associated with the market. The number of entries of the order book displayed is generally preconfigured by the trading software, limited by the trading platform, customized by the user or some combination thereof. Some graphical user interfaces display order books of multiple markets of one or more trading platforms. The trader may be an individual who trades on his/her behalf, a broker trading on behalf of another person or entity, a group, or an entity. Furthermore, the trader may be a system that automatically generates and submits orders.
Regardless of the specific configuration of a particular trading platform, each of the trading platforms will typically include one or more matching algorithms, methods and schemes for allocating incoming orders to other incoming or resting orders. Because incoming orders will rarely be identical to, i.e., have the same quantities, prices and other variables, the other incoming or resting orders, the algorithms, methods and schemes are, for example, intended: to allocate orders to promote and/or reward market makers; to assure an equitable distribution of the incoming order; and to regulate the trading volume.
I. First-In First-Out (FIFO) Algorithm
If the trading host identifies multiple orders having an identical price and which are contra to the incoming order, assuming that the price of the multiple orders is favorable to the price of the incoming order, the trading host allocates the quantity of the incoming order among such identified orders in accordance with prioritization and allocation algorithms as defined in the product specification. A time priority algorithm such as a first-in first-out (FIFO) allocation principle or algorithm considers each identified order sequentially in accordance with when the identified order was received. The quantity of the incoming order is matched to the quantity of the identified order received earliest, then quantities of the next earliest, and so on until the quantity of the incoming order is exhausted.
FIG. 1 relates to an embodiment of a FIFO allocation algorithm that illustrates how an incoming order to sell one hundred (100) lots of a product at a price of 111.01/lot received by the trading host is allocated to standing orders. Table 100 shows orders A to E that the trading host has identified in the order book that are contra to and that have a favorable price compared to the incoming order. Rows of the table 100 show information regarding standing orders A through E in the order book. A column 104 shows the price of each order, a column 106 shows the time each order was received, and a column 108 shows the quantity requested by each order. A column 110 shows the portion of the quantity of the incoming order allocated to each of the standing orders A to E. In particular, the thirty (30) units requested in order A are allocated first because the order A has the most favorable price (111.03). The remaining seventy (70) units of the incoming order are allocated to the orders B to E in accordance with the time they were received because such orders are all at the same price. Therefore, the orders B and C are allocated fifty (50) and twenty (20) lots or units of the remaining seventy (70) lots or units of the incoming order, respectively. Because the quantity of the incoming order is exhausted, the remainder of the standing order C, and all of the standing orders D and E are not allocated any portion of the incoming order and remain a resting orders in the order book.
II. Pro-Rata Algorithm
Some market specifications define the use of a pro-rata allocation algorithm or principle, wherein a quantity of an incoming order is allocated proportionally to each of plurality of identified orders.
FIG. 2 relates to a pro-rata algorithm that illustrates an example of how an incoming order to sell one hundred (100) lots of a product with a price of 111.01/lot is allocated among standing orders. As with the example of FIG. 1, the trading host has identified orders A to E as being contra (i.e., orders to buy) to the incoming order and having a favorable price. Further, thirty (30) lots of the incoming order are allocated to the thirty (30) lots requested in the order A first because this order has the highest bid price (i.e., is most favorable). Thereafter, the remaining seventy (70) lots are allocated to the orders B to E proportionally because these orders are at the same price. In particular, the trading host calculates (i) the total number of lots requested by the orders B to E (111 units) and (ii) calculates a proportion the quantity of each order comprises of the total. Column 202 shows the proportion corresponding to each order. The trading host calculates the portion of the remaining quantity (70) of the incoming order to allocate to each of the orders B to E by multiplying the proportion of the total requested by the order and the quantity remaining. Typically, the trading host rounds the calculated quantity to an integer and whether the trading host rounds up, down, or to a nearest integer is determined by the specification for the market. In other embodiments, if the calculated quantity is a lot of one (1), then the trading host may be configured to not allocate any order during a first pass. Instead, these one (1) lot fills may be allocated, for example, on subsequent FIFO fills. Any quantity of the incoming order that remains after pro-rata allocation (e.g., because the trading host rounds down the calculated quantity) is allocated to any orders that have an unfilled quantity on a FIFO basis. For example, for the order B, the trading host multiplies the proportion of quantity requested by the order B (i.e., 45%) by the remaining quantity (70) and thus allocates thirty-two (32) lots of the remaining seventy (70) lots to this order. Column 204 shows the quantity of the incoming order allocated to each of the orders A to E.
Some trading platforms provide a priority to certain standing orders in particular markets. An example of such an order is the first order that improves a price (i.e., improves the market) for the product during a trading session. To be given priority, the trading platform may require that the quantity associated with the order is at least a minimum quantity. Further, some trading platforms cap the quantity of an incoming order that is allocated to a standing order on the basis of a priority for certain markets. In addition, some trading platforms may give a preference to orders submitted by a trader who is designated as a market maker for the product. Other trading platforms may use other criteria to determine whether orders submitted by a particular trader are given a preference. Typically, when the trading host allocates a quantity of an incoming order to a plurality of identified orders at the same price, the trading host allocates a quantity of the incoming order to any orders that have been given priority. The trading host thereafter allocates any remaining quantity of the incoming order to orders submitted by traders designated to have a preference, and then allocates any still remaining quantity of the incoming order using the FIFO or pro-rata algorithms.
III. Price Priority Algorithm
FIG. 3 illustrates an example of allocating an incoming order to sell one hundred and ten (110) lots of a product where an order that improved the price is given priority. In this example, the order that is given priority must be for a quantity of more than twenty (20) lots and a maximum of fifty (50) lots are to be allocated to on the basis of priority. In addition, suppose that the order A improved the price and is for more than twenty (20) lots. For these reasons the order A is given priority and up to fifty (50) lots of any incoming order is allocated thereto before allocation to other orders at the same price. In particular, when an order for one hundred and ten (110) lots is received, fifty (50) lots are allocated to order A and the remaining quantity (60 lots) are allocated proportionally based on the quantity of standing orders that remains after the allocation to the order A based on the priority thereof as described above.
IV. Pro-Rata/Minimum Allocation Quantity Algorithm
Pro-rata algorithms and principles utilized in some markets may require that an allocation provided to a particular order in accordance with the pro-rata algorithm must meet at least a minimum allocation quantity. Any orders that do not meet or exceed the minimum allocation quantity are allocated to on a FIFO basis after the pro-rata allocation (if any quantity of the incoming order remains). In the example illustrated in FIG. 4, a column 402 shows the results of a pro-rata allocation of an incoming order of one hundred and ten (110) lots among orders A to E. A column 404 shows the results of applying a minimum allocation quantity that has a value of two (2) to the pro-rata allocation. In this example, the trading host rounds fractional quantities of the pro-rata allocation to the nearest integer. Because orders A and B would be allocated quantities that are less than the value of the minimum allocation quantity, the allocation to each of the orders A and B after applying the minimum allocation quantity is zero (0). The two (2) lots of the incoming order that were not allocated to orders A and B because of applying the minimum allocation quantity are allocated on a FIFO basis and because order A was received earliest, order A is allotted the entire remainder of two (2) lots (as shown in a column 406). In an alternate embodiment, the two (2) lots of the incoming order that were not allocated to orders A and B, i.e., the residual, may be allotted to largest resting order that does not meet the minimum allocation quantity. In yet another alternate embodiment, all of the residual lots which, in this example are the two (2) lots of the incoming order that were not allocated to orders A and B, may be allocated to all of the remaining lots to the resting orders that did not receive an initial allocation.
The pro-rata allocation algorithm may further include priority order functionality. Priority orders are orders that better a side of the market (a.k.a. market turner). Only one order per side of the market (buy side or sell side) can be a Priority order priority, although it is possible for neither side of the market to have a Priority order associated therewith. If a Priority order is present and the price elected or associated with the Priority order is selected, then the initial allocation is made to the Priority order. Once the quantity associated with the Priority order has been filled, the pro-rata allocation algorithm distributes the remaining orders as discussed in connection with FIG. 4. It will be understood that Priority orders may be associated with a minimum order quantity or volume and/or a maximum order quantity or cap.
V. Lead Market Marker (LMM) Allocation Algorithm
In other embodiments a Lead Market Maker (LMM) allocation algorithm is disclosed. The LMM designation is given to individuals chosen to make a two-sided market in an assigned contract. The LMM designation conveys a guaranteed allocation percentage of incoming orders to the identified individuals as well as pricing concessions in return for satisfying market obligations. The LMM allocation algorithm has two versions: with and without Priority order functionality.
VI. LMM Allocation Algorithm with Priority Order Functionality
As previously discussed, Priority orders are orders that better a side of the market (a.k.a. market turner). Only one order per side of the market (buy side or sell side) can be a Priority order priority, although it is possible for neither side of the market to have a Priority order associated therewith. If a Priority order is present and the price elected or associated with the Priority order is selected, the Priority order is matched first regardless of whether or not the order belongs to a designated LMM. If the Priority order belongs to an LMM, the order will be matched first and will not be included in the following calculations: (1) if the LMM has a single order at an elected price level, it will match an LMM's allocation percentage N % of the remaining incoming order quantity. However, the matched quantity will not exceed the LMM's order quantity. (2) If the LMM has multiple orders at an elected price level, then the LMM quantity is aggregated and will match N % of the remaining incoming order quantity. Multiple LMM orders are matched on time priority basis until N % quantity allocation is fulfilled. All remaining resting orders at an elected price level (LMM as well) are matched according to time priority. In an embodiment, a user can lose their order priority (for Priority orders) when the order is changed under any one of the following scenarios: (i) an increase in quantity; (ii) a change in price; and (iii) a change in account number.
VII. LMM Allocation Algorithm Without Priority Order Functionality
In another embodiment, if the LMM has a single order at an elected or associated price level, the LMM will match an LMM's allocation percentage N % of the incoming order quantity. However, the matched quantity will not exceed the LMM's order quantity. Alternatively, if the LMM has multiple orders at an elected price level, then the LMM quantity is aggregated and will match N % of the incoming order quantity. Multiple LMM orders are matched on Time Priority basis until N % quantity allocation is fulfilled. However, the LMM's allocated match quantity cannot exceed their aggregated order size quantity. All remaining resting orders at an elected price level (LMM included) are matched according to Time Priority. LMM allocation will not apply until after the market opening sequence is complete, with opening matching occurring on a FIFO basis. The opening price is calculated by maximizing match quantities in relation to buy/sell pressure.
In other embodiments, an order matching algorithm may include a distributed allocation strategy that utilizes time priority elements for market-making orders and/or orders within a tick of the market (provided no resting orders remain at the same price). In operation, orders are initially processed on a time priority basis, the remaining resting orders are then allocated according to the following process: (1) each resting order at a given price receives a one lot allocation unless there is insufficient quantity and then the one lot allocation is conducted randomly; (2) the remaining resting orders are filled based on quantity allocation; and (3) any remaining quantity are allocated to the largest outstanding order or orders.
U.S. Pat. No. 7,225,153 discloses digital options having demand-based, adjustable returns, and trading exchange therefor. In particular, the patent discloses methods and systems for trading and investing in groups of demand-based adjustable return (“DBAR”) contingent claims, including digital options, and for establishing markets and exchanges for such claims. The advantages of the discloses methods and systems, as applied to the establishment and operation of a DBAR digital options exchange, include the ability to offer investments whose profit and loss scenarios are comparable to those for digital options or other derivatives in traditional securities markets, without the need for options or derivatives sellers or order-matching of conventional markets. A DBAR digital options exchange of the disclosed methods and systems can also offer conditional investments, or limit orders, in which an investment in a state of a DBAR contingent claim (such as the price of an underlying asset or index) can be executed or withdrawn in response to the implied probability of the occurrence of that state.
U.S. Pat. No. 7,233,923 discloses systems and methods for matching desired purchases and sales of mismatched items. The disclosed systems and methods compare the requirements of potential buyers and sellers of items against those of sets of other potential buyers and sellers of items to construct transaction sets that will enable an optimal transaction or set of transactions for the parties involved. The disclosed systems and methods may be used to match purchases and sales of any items, such as goods, services, financial instruments, and property interests (e.g., ownership interests in real property, possessory interests in personal property, etc.).
Allocation algorithms used by the trading host for a particular market may affect the liquidity of the market. Specifically, some allocation algorithms may encourage traders to submit more orders, where each order is relatively small. Other allocation algorithms may encourage a trader to use an electronic trading system that can monitor market activity and submit orders on behalf of the trader very quickly and without intervention. As markets and technologies available to traders evolve, the allocation algorithms used by trading hosts must also evolve accordingly to enhance liquidity and price discovery in markets.